var delay = (function(){
	var timer = 0;
	return function(callback, ms){
		clearTimeout (timer);
		timer = setTimeout(callback, ms);
	};
})();

/**
 * 
 * @param objeto jquery grid
 * @param columna columna que queremos devolver el valor
 * @returns
 */
function valorGridIdUnico(objeto, columna)
{
	//Posición de la fila
	var rowindex = parseInt($(objeto).jqxGrid('getselectedrowindex'));
	
	//Los datos de la fila, devuelve un array()
    var data = $(objeto).jqxGrid('getrowdata', rowindex);
    
    if(data == null) return null;
    
    return data[columna];
}

/**
 * Formatea la fecha en formato inglés
 * @param date
 */
function formateaFecha(date)
{
	var mes = (date.getMonth()+1);
	if(mes < 10) mes = '0'+mes;
	
	var dia = date.getDate();
	if(dia < 10) dia = '0'+dia;
	
	return date.getFullYear() + '-' + mes + '-' + dia;
}

function fechaSplit(tipo, fecha)
{
	var arr = fecha.split('-');
	
	switch (tipo) {
		case 'year':
			return parseFloat(arr[0]);
			break;
		case 'month':
			return parseFloat(arr[1]);
			break;
		case 'day':
			return parseFloat(arr[2]);
			break;
		default:
			return 0;
			break;
	}
}
function comboValue(control, valor)
{
	var items = $(control).jqxDropDownList('getItems');
    
    $.each(items, function(index, value) {
    	
        if(valor == value.value) 
        {
        	$(control).jqxDropDownList('selectIndex', index );
            return true;
        }
    });
}

/***
 * 
 * @param url
 * @param comboHTML
 * @param hiddenHTML
 */
function jqxCreaComboList(url, comboHTML, hiddenHTML)
{
	var theme = getTheme();
    
    var source =
    {
        datatype: "json",
        datafields: [
            { name: 'id' },
            { name: 'descripcion' }
        ],
        id: 'id',
        url: url,
        async: false
    };
    
    var dataAdapter = new $.jqx.dataAdapter(source);
    $(comboHTML).jqxDropDownList({
        selectedIndex: 0,
        source: dataAdapter,
        displayMember: "descripcion",
        valueMember: "id",
        width: 330,
        height: 25,
        theme: theme
    });

    // bind to the select event.
    $(comboHTML).bind('select', function (event) {
        if (event.args) {
            var item = event.args.item;
            if (item) {
            	$(hiddenHTML).val(item.value);                            
            }
        }
    });
}

/**
 * 
 */
function eliminaRegistro(dominio, id)
{
	switch (dominio) {
	case 'empresa':
		var	id = valorGridIdUnico($('#jqxGrid'), 'id_empresa');
		if(id==null) 
		{
			alert('Ha de seleccionar un registre de la llista.');
			return 1;
		}
		if(!confirm('Vol esborrar el registre seleccionat?')) return 1;
		url = "/eliminar/empreses/value/"+id;
		message = 'Hi ha hagut un error, el registre no es pot esborrar.';
		break;
	case 'productes':
		var	id = valorGridIdUnico($('#jqxGrid'), 'id_producto');
		if(id==null) 
		{
			alert('Ha de seleccionar un registre de la llista.');
			return 1;
		}
		if(!confirm('Vol esborrar el registre seleccionat?')) return 1;
		url = "/eliminar/productes/value/"+id;
		message = 'Hi ha hagut un error, el registre no es pot esborrar.';
		break;
	case 'list_actividades':
	case 'list_productes':
	case 'list_ofertes_tipus':
	case 'list_ofertes_llocs':
		var	id = valorGridIdUnico($('#jqxGrid'), 'id');
		if(id==null) 
		{
			alert('Ha de seleccionar un registre de la llista.');
			return 1;
		}
		if(!confirm('Vol esborrar el registre seleccionat?')) return 1;
		url = "/eliminar/llistat/value/"+id+'/value/'+dominio;
		message = "No es pot esborrar el registre, hi ha hagut un error o el aquest valor està relacionat amb una altra fila";
		break;
	default:
		break;
	}  	  
	
	jQuery.ajax({
        type: 'get',
        url: url,
        dataType:'json',
        data:"",
        success:function(resultado){
        	console.log(resultado);
        	if(resultado.error)
        	{
        		alert("Hi ha hagut un error, el registre no es pot esborrar.");
        		return 1;
        	}
        	else
        		return 0;
        },
        error:function (xhr, ajaxOptions, thrownError){
            alert("No s'ha pogut eliminar el registre.(Error 404)");
            return 1;
        }    
    });
}

function borraImagen(url)
{
	jQuery.ajax({
        type: 'get',
        url: url,
        dataType:'json',
        data:"",
        success:function(resultado){
        	console.log(resultado.error);
        	if((resultado.error))
        		alert("No s'ha pogut esborrar la imatge, o la imatge no existeix.");
        	else
        		location.reload();
        },
        error:function (xhr, ajaxOptions, thrownError){
            alert("No s'ha pogut esborrar la imatge.(Error 404)");
            return 1;
        }    
    });
}